<?php
$Switcher = $MT_mod_cust['Switcher'];

// Получаем список адресатов из конфига
$cfg_var=mst_getcfgmod('feedback','send_to');

mst_modload('pear','HTML/Template/Sigma');

// Получаем из настроек информацию о надобности использования модуля pictkey
$enpict=mst_getcfgmod('feedback','pictkey');
// Инициализируем модуль pictkey если об этом сказано в настройках
if($enpict=='enable')
{
	mst_initmod('pictkey');
}

switch($Switcher->next())
{
	// Отпраляем письмо и выводим отчет об отправке
	case 'submit':
	{
		// @todo Все переменные в одном массиве
		// Получаем информацию из формы
		$name=stripslashes(trim($_POST['name']));
		$toid=$_POST['to'];
		$ip=$_SERVER["REMOTE_ADDR"];
		$text=$_POST['text'];
		$msg_fromemail = stripslashes(trim($_POST['email']));
		$date = date("d-m-Y H:i");
		// устанавливаем флаг прохождения проверки на "пройдено"
		$passtest=0;
		// если включен моудль проверки через картнку проверяем введенный ключ
		if($enpict=='enable')
		{
			$kinp=$_POST['kinp'];
			$kgen=$_POST['kgen'];
			$its=$_POST['its'];
			if(pictkey_check($kinp,$its,$kgen)!=true)
			{
				// проверка не пройдена, меня флаг проверки
				$passtest=1;
			}
		}
		/*
		// @todo Прежде чем это добавлять, надо было отладить
		// система ругается на твои регулярные выражения
		// а сообщения "неправильное имя" со сброшенной формой
		// не совсем то, что хотели бы видеть посетители
		if(!feedback_checkname($name))
		{
			$passtest=2;
		}
		elseif(!feedback_checkemail($msg_fromemail))
		{
			$passtest=3;
		}
		elseif(!feedback_checktext($text))
		{
			$passtest=4;
		}
		*/
		// проверяем на успешность прохождения теста с картинкой, если все ок отправляем письмо и выводимотчет
		if($passtest==0)
		{
			feedback_sendfbmail($name,$toid,$ip,$text,$msg_fromemail);
			$tmpl = new HTML_Template_Sigma('/');
			$tmpl->loadTemplateFile(mst_modpath('feedback','/tml/submit.tml'));
			$tmpl->setVariable('name',$name);
			$tmpl->setVariable('message',$text);
			$tmpl->parse();
			$tmpl->show();
		}
		else
		{
			switch($passtest)
			{
				case 1: echo "Введен неверный антиспам ключ."; break;
				case 2: echo "Введено неверное имя."; break;
				case 3: echo "Введен неверный емаил."; break;
				case 4: echo "Введен недопустимый текст сообщения."; break;
				default: echo "Неизвестная ошибка.";
			
			}
		}
		// Записываем в файл, если он существует
		if ($filelog = mst_modpath($MT_mod_name,'dat/log.txt',true))
		{
			//
			$text1 = addcslashes($text,"\n\r\t");
			error_log("{$date}\t{$passtest}\t{$msg_fromemail}\t{$toid}\t$name\t{$ip}\t{$text1}\n",3,$filelog);
		}
	}
	break;
	
	// Выводим форму для отправки письма по обратной связи
	default:
	{
		// Подключаем шаблон
		$tmpl = new HTML_Template_Sigma('/');
		$tmpl->loadTemplateFile(mst_modpath('feedback','/tml/frm.tml'));
		// Генерируем опции формы и передаем их в шаблон
		$url=$Switcher->url_branch('submit');
		$frmopt=" method=\"post\" action=\"$url\""; 
		$tmpl->setVariable('frmopt',$frmopt);
        // Генерируем список адресатов и передаем его в шаблон	
		$adr=mst_getcfgmod('feedback','send_to');
		if(is_array($adr))
		{
			foreach ($adr as $to_id => $to_val)
			{
				$tmpl->setVariable('name',$to_val['name']);
				$tmpl->setVariable('email_id',$to_id);
				$tmpl->parse('option');
			}
		}
		else
		{
			mst_error('feedback',"list of adresses is empty! ");
		}
		// Проверяем на надобность вывода формы ауетификации через картинку с помощью модуля pictkey
		if($enpict=='enable')
		{
			$tmpl->setVariable('ptext','Введите число изображенное на картинке:'); 
			$tmpl->parse('pictkey_text');
			//----------
			$key=(string)rand(1000,9999);
			$pictkey=pictkey_genvars($key);
			$tmpl->setVariable('imgsrc',$pictkey['imgsrc']);
			$tmpl->setVariable('keycrypt',$pictkey['keycrypt']);
			$tmpl->setVariable('timestamp',$pictkey['timestamp']);
			$tmpl->parse('pictkey');
		}
		$tmpl->parse();
		return $tmpl->show();
	}
	break;
}
?>